package com.ktg.mes.wm.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ktg.common.annotation.Excel;
import com.ktg.common.core.domain.BaseEntity;

/**
 * 生产领料单行对象 wm_issue_line
 *
 * @author yinjinlu
 * @date 2022-07-14
 */
@Data
@Accessors(chain = true)
@TableName("wm_issue_line")
public class WmIssueLine extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 行ID */
    @TableId(value = "line_id", type = IdType.AUTO)
    private Long lineId;



    /** 物料入库记录 */
    private Long itemRecptLineId;

    @Excel(name = "入库物料状态")
    private  String letStepMaterial;


    /** 领料单ID */
    @Excel(name = "领料单ID")
    private Long issueId;
    private Long materialStockId;

    @TableField(exist = false)
    private String issueName;
    @TableField(exist = false)
    private String taskCode;
    @TableField(exist = false)
    private String taskId;

    /** 产品物料ID */
    @Excel(name = "产品物料ID")
    private Long itemId;

    /** 统计分类 */
    @Excel(name = "统计分类")
    @TableField(exist = false)
    private String statisticsType;

    /** 产品物料编码 */
    @Excel(name = "产品物料编码")
    private String itemCode;

    /** 产品物料名称 */
    @Excel(name = "产品物料名称")
    private String itemName;

    /** 规格 */
    @Excel(name = "粘度")
    private String viscosity;


    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specification;

    /** 单位 */
    @Excel(name = "单位")
    private String unitOfMeasure;


    /**包装规格*/
    @Excel(name = "包装规格", width = 15)
    @ApiModelProperty(value = "包装规格")
    private String packingType;

    /** 标签 */
    @Excel(name = "标签")
    private String tag;

    /** 领料数量 */
    @Excel(name = "领料数量")
    private BigDecimal quantity;

    /** 领料批次号 */
    @Excel(name = "领料批次号")
    private String batchCode;

    /** 仓库ID */
    @Excel(name = "仓库ID")
    private Long warehouseId;

    /** 仓库编码 */
    @Excel(name = "仓库编码")
    private String warehouseCode;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 库区ID */
    @Excel(name = "库区ID")
    private Long locationId;

    /** 库区编码 */
    @Excel(name = "库区编码")
    private String locationCode;

    /** 库区名称 */
    @Excel(name = "库区名称")
    private String locationName;

    /** 库位ID */
    @Excel(name = "库位ID")
    private Long areaId;

    /** 库位编码 */
    @Excel(name = "库位编码")
    private String areaCode;

    /** 库位名称 */
    @Excel(name = "库位名称")
    private String areaName;

    /** 预留字段1 */
    private String attr1;

    /** 预留字段2 */
    private String attr2;

    /** 预留字段3 */
    private Long attr3;

    /** 预留字段4 */
    private Long attr4;

    /**
     *  物料编码
     */
    @Excel(name = " 物料编码")
    private  String meterialCode;

    /** 有效期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expireDate;
    @Excel(name = "出库类型")
    private String outType;

    /**
     * 组装ID,也是入库记录ID
     */
    private Long assembleIdToItemRecptLineId;


    private Long itemNeedId;

    /**
     *  0 未入库  1 已入库  null 已入库 , 3组装入库预入库部分 , 4组装全部预出
     */
    @Excel(name = " 是否执行入库")
    private  String isInStock;


    /**
     * 销售出库单编号
     */
    private String outOrderCode;

}
